package com.kamistoat.meimeimall.meimeimallorder.vo;

import com.kamistoat.meimeimall.common.To.memberTo.MemberReceiveAddressTo;
import com.kamistoat.meimeimall.common.To.orderTo.OrderItemNewTo;
import com.kamistoat.meimeimall.common.To.orderTo.OrderItemTo;
import com.kamistoat.meimeimall.common.To.seckillTo.SecKillProductCacheTo;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * 前端提交订单数据。
 * 一个订单中可以包含多个商品，可以包含普通商品和促销商品
 */
@Data
public class OrderSubmitVo {
    /**
     * 订单防重令牌
     */
    private String orderUniqueToken;
    /**
     * 订单SN。由后端填写后向下传递
     */
    private String orderSN;
    /**
     * 用户Id
     */
    private Long userId;
    /**
     * 收货地址To
     */
    private MemberReceiveAddressTo memberReceiveAddressTo;
    /**
     * 支付方式
     */
    private Integer payType = 0;
    /**
     * 用户使用积分
     */
    private Integer integration;
    /**
     * 积分满减
     */
    private BigDecimal integrationPrice;
    /**
     * 前端提价的订单价格。
     * 提交订单时应由前端传递，经过校验固定价格后，下单消费者不再校验
     */
    private BigDecimal shouldPayPrice;
    /**
     * 前端提交的订单商品详情
     */
    private List<OrderItemNewTo> orderItemNewToList;
    /**
     * <b>已弃用</b>前端提交订单中商品的skuId列表，用于和后端重新构建的订单小项列表对比校验
     */
    @Deprecated
    private List<Long> skuIdList;
    /**
     * <b>已弃用</b>订单小项列表。提交订单时前端无需提交，经过校验后固定，下单消费者不再校验
     */
    @Deprecated
    private List<OrderItemTo> orderItemToList;
    /**
     * <b>已弃用</b>是否为秒杀订单
     */
    @Deprecated
    private Boolean isSeckill = false;
    /**
     * <b>已弃用</b>秒杀订单的Long sessionId
     */
    @Deprecated
    private Long seckillSessionId;
    /**
     * <b>已弃用</b>秒杀订单的String randomCode
     */
    @Deprecated
    private String seckillRandomCode;
    /**
     * <b>已弃用</b>秒杀商品skuId
     */
    @Deprecated
    private Long seckillSkuId;
    /**
     * <b>已弃用</b>想要购买秒杀商品的数量
     */
    @Deprecated
    private Integer seckillNum;
    /**
     * <b>已弃用</b>秒杀活动详情
     */
    @Deprecated
    private SecKillProductCacheTo secKillProductCacheTo;
}
